package com.zc.manager.device.request;

import lombok.*;

import java.util.HashMap;
import java.util.List;
import java.util.Map;

/**
 * 设备操作请求参数
 * @author xiepufeng
 **/
@AllArgsConstructor
@NoArgsConstructor
@Builder
@Getter
@Setter
public class DeviceOperateRequest<T> {
    /**
     * 设备消息头
     * async true 异步请求，默认 false
     *       true 不等待消息回复立马
     *       返回前端消息，false等设备
     *       回复消息同时返回前端，
     *       前提条件设备会携带消息id
     * sendAndForget 发送既不管(true) 默认 false
     *       此参数为true时发送消息不
     *       管回复，不能确定消息发送是否
     *       成功，如果设备无法携带
     *       消息id应该把此参数设置为
     *       true,为true时可以不设置
     *       async参数
     */
    private Map<String, Object> headers = new HashMap<>();

    /**
     * 设备消息体
     */
    private T body;

    /**
     * 设备id
     */
    private List<String> deviceIds;
}
